iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0

今日的行程:
辦公室:10:00 - 19:30
讀書室:22:30 - 23:00

正片開始

今日的記錄:
今天來看了一下 ARM 架構書籍的相對應章節,store buffer 和 invalidate queue 的內容都差不多,差別在於 ARM64 提供的指令意涵以及形式不同。

Memory Barrier Instruction

RISC-V 提供的記憶體屏障指令是 fence,
功能可以大致理解為在 fence 之前的指令一定會比 fence 之後的指令還早完成;
(RISC-V 還有提供 fence.i,用來確保 instruction 相關 memory 的 coherence)
ARM64 則是提供了 ISB、DSB、DMB 指令,詳細的介紹是在第 18 章節。

  • DMB (Data Memory Barrier): 類似 fence 指令,但是只影響 memory access 相關的指令 (load, store, cache management 指令)
  • DSB (Data Synchronization Barrier): 類似 fence 指令,比 DMB 嚴格,在 DSB 之後的所有指令,都會等到在 DSB 之前的所有 memory 存取指令執行完,才會被執行
  • ISB (Instruction Synchronization Barrier): 確保所有在 ISB 之後的指令都是從 I cache 或是 memory 中取得的,會 flush pipeline。

而 DMB 和 DSB 指令都會帶一個參數,用來指定共享屬性 (Shareability),
分為 full system shareable、outer shareable、inner shareable、non-shareable。

總結

  • ARM64 架構在 memory 相關的議題上,訂了很多有趣的術語
    • cacheability & shareability
    • PoC (Point of Coherence)、PoU (Point of Unification)
    • Normal memory、Device Memory
  • 所以找了一些延伸的資料來參考,明天就來記錄整理一下這些資料

上一篇
[鐵人賽] Day 10 公司讀書會 - RISC-V 第16章 - Memory Barrier Instruction (下)
下一篇
[鐵人賽] Day 12 ARM 第 18 章節 memory barrier instruction 產生的原因
系列文
上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言